package org.usmile.algorithms.leetcode.simple;

import org.usmile.algorithms.leetcode.ListNode;

/**
 * 83. 删除排序链表中的重复元素
 *
 * 给定一个已排序的链表的头 head ， 删除所有重复的元素，使每个元素只出现一次 。返回 已排序的链表 。
 *
 * 示例 1：
 * 输入：head = [1,1,2]
 * 输出：[1,2]
 *
 * 示例 2：
 * 输入：head = [1,1,2,3,3]
 * 输出：[1,2,3]
 *
 * 提示：
 * 链表中节点数目在范围 [0, 300] 内
 * -100 <= Node.val <= 100
 * 题目数据保证链表已经按升序 排列
 */
public class _0083 {
}


class _0083_Solution {
    public ListNode deleteDuplicates(ListNode head) {
        ListNode prev = head;
        while (prev != null) {
            ListNode next = prev.next;
            while (next != null && prev.val == next.val) {
                next = next.next;
            }
            prev.next = next;
            prev = next;
        }

        return head;
    }
}